import json
import time

from com.xunai.saas.example.Common import CommonRequest


class TongueApi(CommonRequest):
    """
    舌诊
    """

    def analysis(self, frontImg, bottomImg, notifyUrl):
        """
        提交舌像
        :param frontImg: 舌上图像地址
        :param bottomImg: 舌下图像地址
        :param notifyUrl: 分析结果通知地址
        :return:
        """
        body = {
            "tongueFrontImgPath": frontImg,
            "tongueBottomImgPath": bottomImg,
            "notifyUrl": notifyUrl}
        rs = super().post("/xunai-saas/saasApi/v1/tongue/tongueAnalysis", body)
        print("舌诊提交结果", rs.json())
        return rs.json()

    def result(self, notifyCode, num):
        """
        主动查询舌诊分析结果，一般使用回调接口接收分析结果，特殊情况时使用此接口，此接口有频率限制
        :param notifyCode: 从 analysis 接口响应的结果中获取
        :param num:
        :return:
        """
        if num > 10:
            return
        rs = super().get("/xunai-saas/saasApi/v1/tongue/queryResult?notifyCode=" + str(notifyCode))
        print("舌诊分析结果", rs.json())
        if rs.json()['code'] == '0000' and "result" in json.dumps(rs.json()):
            return rs.json()

        time.sleep(1)
        num = num + 1
        self.result(notifyCode, num)


if __name__ == "__main__":
    api = TongueApi()
    # 提交舌像图片
    rs = api.analysis("舌上图像", "舌下图像", "通知地址")
    # 获取分析结果
    api.result(rs['data']['notifyCode'], 1)
